Conceito: Equilibrar Prioridades das Partes Interessadas em Competição
Este princípio articula a importância de equilibrar as necessidades dos envolvidos.
Descrição Principal

Introdução

Este princípio articula a importância de equilibrar muito dos negócios conflitantes e das necessidades das partes interessadas, assim como equilibrar o desenvolvimento customizado versus a reutilização dos recursos na satisfação dessas necessidades.

    
Benefícios
  • Alinhar os aplicativos em conjunto com os negócios e as necessidades do usuário
  • Reduzir o desenvolvimento customizado
  • Otimizar o valor do negócio
Padrão
  1. Definir, compreender e priorizar os negócios e as necessidades do usuário
  2. Priorizar os projetos e os requisitos e unir as necessidades com as capacidades do software;
  3. Compreender quais recursos podemos alavancar;
  4. Equilibrar a reutilização dos recursos com as necessidades do usuário
Antipadrões
  • Documentar a fundo os requisitos minuciosos no início do projeto, colocar a aceitação do interessado a esses requisitos
    • Negociar todas as alterações aos requisitos, pois cada alteração pode aumentar o custo do projeto,
    • Bloquear os requisitos diretos, reduzindo assim a capacidade de elevar os recursos existentes,
    • Desempenhar principalmente o desenvolvimento customizado.
  • Arquitetar um sistema apenas para atender as necessidades dos interessados mais influentes.

Discussão

Por exemplo, muitos interessados preferem ter um aplicativo que realize exatamente o que eles querem, enquanto minimiza o custo do desenvolvimento do aplicativo e o tempo de planejamento. Muito embora, essas prioridades freqüentemente estejam em conflito. Outro exemplo é que se alavancássemos um aplicativo empacotado, seríamos capazes de entregar uma solução mais rápida e a um custo menor, mas precisamos negociar vantagens e desvantagens em muitos requisitos. Se, em vez disso, optarmos por construir um aplicativo a partir de rascunho, ele poderia endereçar todo requisito em sua própria lista de itens de interesse, mas o orçamento e a data de conclusão do projeto podem ser forçados para além dos limites possíveis.

Utilizando um componente é possível reduzir radicalmente os custos e programar a entrega de um certo conjunto de funcionalidades. Em muitos casos, nós também devemos nos comprometer com alguns requisitos técnicos ou funcionais, como o suporte a plataformas, desempenho ou base (tamanho físico do aplicativo).

Para estarmos em posição de equilibrar requisitos, precisamos primeiro gerenciar os requisitos efetivamente, conforme descrito em  Material de Suporte: Gerenciamento de Requisitos. Em vez de enviar equipes programadas para atacar cada elemento em uma lista de requisitos, precisamos compreender e priorizar as necessidades de negócios e dos interessados. Isso significa capturar os processos comerciais e vinculá-los aos projetos e capacidades de software, o que nos permite priorizar efetivamente os projetos e os requisitos e modificar nossa prioridade na medida em que aumenta nossa compreensão dos aplicativos e desenvolvem as necessidades dos interessados. Isso também significa que nossa necessidade envolve o cliente ou o representante de serviços no projeto para garantir que possamos compreender quais são essas necessidades.

Ao mesmo tempo, precisamos centralizar as atividades de desenvolvimento em torno das necessidades do interessado. Por exemplo, alavancado o caso de uso orientado pelo desenvolvimento e design centralizado pelo cliente, nosso processo de desenvolvimento pode acomodar a evolução das necessidades dos envolvidos no curso do projeto, na medida em que uma  função de alteração dos negócios e nosso conhecimento aprimorado sobre as  capacidades que são realmente importantes para os negócios e os usuários finais.  

Finalmente, precisamos compreender quais ativos estão disponíveis e  equilibrar a reutilização dos ativos com as necessidades dos envolvidos. Exemplos dos ativos incluem aplicativos de legado, serviços, componentes reutilizáveis e padrões. A reutilização dos ativos pode, em muitos casos, conduzir à redução no custo do projeto. A reutilização de ativos comprovados muitàs vezes significa qualidades superiores em novos aplicativos. A desvantagem é que, em muitos casos, nós precisamos comercializar a reutilização de ativos e aperfeiçoar a capacidade de satisfazer as necessidades do usuário. A reutilização de um componentes pode reduzir os custo no desenvolvimento de um recurso em 80 por cento, mas só é possível atender 75 por cento dos requisitos. Portanto, a reutilização efetiva nos faz equilibrar constantemente a reutilização de ativos com as necessidades dos envolvidos.